Apply Georgia HB463 (2025-2026) tax cuts and refactor GA flat-tax rate structure#8306
Apply Georgia HB463 (2025-2026) tax cuts and refactor GA flat-tax rate structure#8306DTrim99 wants to merge 3 commits into
Conversation
HB463 (signed 2026, https://www.legis.ga.gov/api/legislation/document/20252026/249080) revises Georgia's individual income tax in five places. This PR implements the direct provisions and notes the trigger-conditional prospective provisions in parameter comments without modeling them. Direct changes (no revenue trigger): - Tax rate: 5.19% -> 4.99% for TY 2026, applied to all five filing-status rate files (Section 2-1, O.C.G.A. 48-7-20(a.1)) - Standard deduction: JOINT $24,000 -> $30,000, SINGLE/HoH/SEPARATE/SURVIVING_SPOUSE $12,000 -> $15,000 for TY 2026 (Section 2-3, O.C.G.A. 48-7-27(a)(1)(B)) - Dependent exemption: $4,000 -> $5,000 per dependent for TY 2026 (Section 2-2, O.C.G.A. 48-7-26(b)) - Age-65+ retirement income exclusion: cap raised from $65,000 to $70,000 effective TY 2027 (Section 2-3, O.C.G.A. 48-7-27(a)(5)(A)(xiv)) New exclusions (TY 2026-2028, self-repealing): - ga_qualified_overtime_exclusion: up to $1,750 of qualified overtime compensation per full-time hourly employee (Section 2-4, O.C.G.A. 48-7-27(a)(16)). Approximated via fsla_overtime_premium. - ga_cash_tip_exclusion: up to $1,750 of cash tips per employee in a customarily-tipped occupation (Section 2-4, O.C.G.A. 48-7-27(a)(17)). Uses tip_income gated by tip_income_deduction_occupation_requirement_met. - Both added to gov.states.ga.tax.income.subtractions.subtractions from 2026-01-01 and removed from the list at 2029-01-01 to self-repeal. Trigger-conditional provisions documented but NOT modeled: - Section 2-1 paragraph (2): future annual rate cuts of 0.10% per year (target 3.99%) subject to Governor's revenue estimate growth, prior-year net revenue, and Revenue Shortfall Reserve coverage of the projected revenue loss. - Section 2-3 paragraph (1.1): future SD increases of $750 (joint) / $375 (single etc.) per year (targets $36,000 / $18,000), subject to the same triggers. - Section 2-2: future dependent-exemption increases of $125 per year (target $6,000), subject to the same triggers. Whether the triggers fire in any year cannot be predicted from the bill, so these prospective provisions are described in YAML comments only. Tests: 26/26 affected GA tests pass locally, including 8 HB463 integration tests covering rate, SD, dependent exemption, retirement exclusion, overtime exclusion (active 2026 + self-repealed 2029), and cash-tip exclusion (occupation-eligible vs not). Closes PolicyEngine#8305 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8306 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 3 3
Lines 63 46 -17
Branches 0 1 +1
=========================================
- Hits 63 46 -17
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…meter
Georgia transitioned from a progressive bracket structure to a flat tax
beginning tax year 2024 (HB1015). Previously the model encoded the flat
period as five filing-status bracket files all sharing one rate per year,
which obscured the statutory transition and forced HB463's 4.99% change to
touch 25 places (5 brackets x 5 filing-status files).
This refactor splits the rate logic into two named branches:
- gov.states.ga.tax.income.main.flat_applies (bool): true from 2024-01-01.
Description: "Georgia applies the flat-tax structure when this indicator
is true; when false, the per-filing-status progressive bracket structure
under gov.states.ga.tax.income.main.{single,joint,separate,
head_of_household,surviving_spouse} applies instead."
- gov.states.ga.tax.income.main.flat_rate (rate): 5.39% / 5.19% / 4.99%
by tax year 2024 / 2025 / 2026.
ga_income_tax_before_non_refundable_credits.py now switches on
flat_applies: when true, returns flat_rate * income; when false, dispatches
to the per-filing-status progressive brackets.
The five progressive bracket files now contain only the pre-2024 rates
(2021-01-01 entries through the 0.0575 top rate). The 2024+ duplicate rate
entries have been removed since flat_applies/flat_rate now govern those
tax years.
Tests: 28/28 GA tax tests pass (covers pre-2024 progressive and
2024-2026 flat-rate cases).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Program ReviewAutomated Source Documents
SummaryThe implementation faithfully encodes HB463's parameter values and effective dates. The refactor ( Critical (Must Fix)
Should Address
Suggestions
PDF Audit Summary
Validation Summary
Review Severity: REQUEST CHANGESThe critical items are: (1) the railway carve-out is a substantive bill provision that silently excludes an eligible group under the current implementation; (2) the refactor's regression surface (HoH/MFS/SS pre- and post-2024) is structurally under-tested; (3) the Next StepsTo auto-fix issues: |
- Add #page= anchors to all 7 HB463 references (flat_rate p.2, dependent p.3, standard deduction p.3, retirement older p.5, overtime p.6, tips p.7, subtractions split into p.6/p.7). - Document railway carve-out (§48-7-27(a)(16)(B)) as a known under-modeling in ga_qualified_overtime_exclusion.py — FLSA-exempt railway workers receive no exclusion under the model despite the bill's explicit extension via collective bargaining agreements. - Document the "cash tips" definition approximation (cash + charged, excluding mandatory service charges) in ga_cash_tip_exclusion.py and clarify that the SSTB exclusion via ~is_sstb is the standard federal proxy for the bill's IRC §63 clause. - Add SURVIVING_SPOUSE rationale comment in standard deduction amount.yaml — JOINT-tier mapping ($30,000 in 2026) follows federal qualifying-widow(er) conformity to the joint standard deduction. - Collapse flat_rate.yaml description to one sentence. - Shorten flat_applies.yaml description and add HB463 reference. - Inline single-use intermediates in both new variable formulas. - Switch single-element reference tuples to plain strings. - Fix retirement/cap/older.yaml SECTION label and trailing whitespace. - Add 2023 progressive-bracket boundary test under SINGLE and SURVIVING_SPOUSE — locks the 2023 -> 2024 formula branch. - Add 2024 flat-tax tests for HEAD_OF_HOUSEHOLD, SEPARATE, and SURVIVING_SPOUSE — refactor regression coverage. - Add 2025 HEAD_OF_HOUSEHOLD flat-tax test. - Add 2026 flat-tax tests for HEAD_OF_HOUSEHOLD, SEPARATE, and SURVIVING_SPOUSE. - Add TY 2026 retirement-cap test confirming $65,000 still applies before the 2027 raise to $70,000. - Add 2026 standard-deduction tests for HEAD_OF_HOUSEHOLD ($15k), SEPARATE ($15k), and SURVIVING_SPOUSE ($30k). - Add multi-dependent test (3 children -> $15,000). - Add sub-cap, zero-earnings, and multi-worker overtime/tips tests to validate the per-person cap applies before aggregation. - Add TY 2028 contrast case showing exclusions DO apply in the last year before the 2029 self-repeal. - Set is_paid_hourly: true on overtime test cases so eligibility preconditions are unambiguous.
Summary
Implements Georgia HB463 (2025-2026 session, signed 2026; bill text) and refactors the GA tax-rate parameter structure to make the 2024 flat-tax transition explicit.
The PR has two parts:
flat_appliesboolean + a singleflat_rateparameter, so future flat-rate changes (like HB463's 4.99%) are a one-parameter edit instead of touching 25 places (5 brackets × 5 filing-status files).Closes #8305.
Rate-structure refactor
gov.states.ga.tax.income.main.flat_appliesfalsepre-2024;truefrom 2024-01-01. Description states explicitly that whenfalse, the per-filing-status progressive bracket structure undergov.states.ga.tax.income.main.{single,joint,separate,head_of_household,surviving_spouse}applies instead.gov.states.ga.tax.income.main.flat_rateflat_appliesis true: 5.39% (2024), 5.19% (2025), 4.99% (2026).ga_income_tax_before_non_refundable_credits.pynow branches onflat_applies: when true, returnsflat_rate * income; when false, dispatches to the existing per-filing-status progressive brackets.The five progressive bracket files (
main/{single,joint,separate,head_of_household,surviving_spouse}.yaml) keep their pre-2024 rate entries only; the 2024+ duplicate rate entries that the previous structure required have been removed.HB463 direct changes (no revenue trigger)
HB463 new exclusions (TY 2026-2028, self-repealing)
Both new variables are added to
gov.states.ga.tax.income.subtractions.subtractionsfrom2026-01-01and removed from the list at2029-01-01to model the December 31, 2028 self-repeal.ga_qualified_overtime_exclusion— § 48-7-27(a)(16). Up to $1,750 of qualified overtime compensation (IRC § 225) per full-time hourly employee. Approximated usingfsla_overtime_premium, the federally-defined FLSA overtime premium, which by definition applies to non-exempt (hourly) workers.ga_cash_tip_exclusion— § 48-7-27(a)(17). Up to $1,750 of cash tips per employee in a customarily-tipped occupation. Usestip_incomegated bytip_income_deduction_occupation_requirement_met(Treasury Tipped Occupation Code list).Trigger-conditional provisions documented but NOT modeled
The bill provides for prospective annual reductions/increases subject to revenue-shortfall-reserve and Governor's-revenue-estimate triggers. Whether the triggers fire in any given year cannot be predicted from the bill alone, so these provisions are described in YAML comments only:
Files
Parameters added (refactor):
policyengine_us/parameters/gov/states/ga/tax/income/main/flat_applies.yamlpolicyengine_us/parameters/gov/states/ga/tax/income/main/flat_rate.yamlParameters modified (refactor):
policyengine_us/parameters/gov/states/ga/tax/income/main/{single,joint,separate,head_of_household,surviving_spouse}.yaml— strip 2024+ duplicate rate entriesParameters added (HB463):
policyengine_us/parameters/gov/states/ga/tax/income/agi/exclusions/overtime/cap.yaml— $1,750policyengine_us/parameters/gov/states/ga/tax/income/agi/exclusions/tips/cap.yaml— $1,750Parameters modified (HB463):
policyengine_us/parameters/gov/states/ga/tax/income/deductions/standard/amount.yaml— 2026-01-01 raised SD by filing statuspolicyengine_us/parameters/gov/states/ga/tax/income/exemptions/dependent.yaml— 2026-01-01: $5,000policyengine_us/parameters/gov/states/ga/tax/income/agi/exclusions/retirement/cap/older.yaml— 2027-01-01: $70,000policyengine_us/parameters/gov/states/ga/tax/income/subtractions/subtractions.yaml— adds overtime/tips from 2026, removes them from 2029Variables modified (refactor):
policyengine_us/variables/gov/states/ga/tax/income/ga_income_tax_before_non_refundable_credits.py— switch onflat_appliesVariables added (HB463):
policyengine_us/variables/gov/states/ga/tax/income/ga_qualified_overtime_exclusion.pypolicyengine_us/variables/gov/states/ga/tax/income/ga_cash_tip_exclusion.pyTests added:
policyengine_us/tests/policy/baseline/gov/states/ga/tax/income/ga_hb463_integration.yamlplus 2 new 2026 rate cases in the existingga_income_tax_before_non_refundable_credits.yaml.Test plan